package com.baofu.paycore.manager.model;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.util.Date;

/**
 * 退款内部资金单对象
 * <p>
 * </p>
 * User: kwl Date: 2016/6/4 ProjectName: paycore Version: 5.0.0
 */
@Setter
@Getter
@ToString(callSuper = true)
public class SubRefundBO implements Comparable<SubRefundBO> {

    /**
     * 退款资金明细NO
     */
    private String fundDetailNo;

    /**
     * 退款支付单号
     */
    private String payNo;

    /**
     * 原资金单，调用系统返回单号
     */
    private String origTransReceiptNo;

    /**
     * 原资金单，调用系统返回处理日期(如会计日)
     */
    private Date origTransDate;

    /**
     * 原请求日期
     */
    private Date origRequestDate;

    /**
     * 原支付单号
     */
    private String origRequestOrderNo;

    /**
     * 原请求业务编号
     */
    private String origRequestBizNo;

    /**
     * 原请求系统
     */
    private String origRequestSystem;

    /**
     * 产品大类
     */
    private String bizType;

    /**
     * 产品细类
     */
    private String subBizType;

    /**
     * 资金单类型
     */
    private String fundType;

    /**
     * 支付工具类型
     */
    private String payToolType;

    /**
     * 支付工具子类型
     */
    private String payToolSubType;

    /**
     * 分类类型
     */
    private String classType;

    /**
     * 出账账户号
     */
    private String payerAccNo;

    /**
     * 收账账户号
     */
    private String payeeAccNo;

    /**
     * 币种
     */
    private String ccy;

    /**
     * 退款金额
     */
    private Long amt;

    /**
     * 状态
     */
    private String status;

    /**
     * 资金属性
     */
    private String fundBelong;

    /**
     * 关联资金明细
     */
    private String relateFundDetailNo;

    /**
     * 冻结码
     */
    private String freezeCode;

    /**
     * 账务事件号
     */
    private String eventNo;

    /**
     * 后端系统(清分、账务)返回订单号
     */
    private String transReceiptNo;

    /**
     * 后端系统处理时间
     */
    private Date transDate;

    /**
     * 资金渠道
     */
    private String fundingChannel;

    /**
     * 资金渠道细类
     */
    private String subFundingChannel;

    /**
     * 协议组成编号
     */
    private String  agreeRelId;

    /**
     * 绑卡协议号
     */
    private String agreementNo;

    /**
     * 银行代码
     */
    private String bankCode;

    /**
     * 卡类型
     */
    private String cardType;

    /**
     * 错误码
     */
    private String errorCode;

    /**
     * 错误信息
     */
    private String errorMsg;

    /**
     * 备注
     */
    private String description;

    /**
     * 扩展字段
     */
    private String fdDtlExtra;

    /**
     * 操作人
     */
    private String operator;

    /**
     * 排序
     */
    private int sort;

    @Override
    public int compareTo(SubRefundBO o) {

        if(this.sort < o.getSort()){
            return -1;
        }
        if(this.sort > o.getSort()){
            return 1;
        }
        return 0;

    }
}
